// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.SQLStatement;
// import com.alibaba.druid.sql.ast.statement.SQLCreateStatement;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "OracleStatementImpl.h"
#include "../../../../ast/statement/SQLCreateStatement.h"

class OracleCreatePackageStatement
    : virtual public OracleStatementImpl,
      virtual public SQLCreateStatement
{
public:
  BOOL_ptr orReplace;
  SQLName_ptr name;

  BOOL_ptr body;

  SQLStatement_list_ptr statements;

  OracleCreatePackageStatement();
  SHAREDOBJECT(OracleCreatePackageStatement);

  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  SQLObject_ptr clone();

  BOOL_ptr isOrReplace();

  void setOrReplace(BOOL_ptr orReplace);

  BOOL_ptr isBody();

  void setBody(BOOL_ptr body);

  SQLName_ptr getName();

  void setName(SQLName_ptr name);

  SQLStatement_list_ptr getStatements();
};
